package cn.com.yusys.yusp.admin.service;


import cn.com.yusys.yusp.admin.bean.AdminSmNoticeBean;
import cn.com.yusys.yusp.admin.domain.*;
import cn.com.yusys.yusp.commons.mapper.QueryModel;
import cn.com.yusys.yusp.notice.dto.AdminSmNoticeDTO;

import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * @项目名称：yusp-admin
 * @类名称：AdminSmLookupItemService
 * @类描述：数据字典内容
 * @功能描述:
 * @创建人：liaoxd@yusys.com.cn @创建时间：2017-12-13 11:18 @修改备注：
 * @修改日期 修改人员 修改原因 -------- -------- ----------------------------------------
 * @modify by Cytus_ at 20190619 单体应用集成需要将该类接口化
 * @version 1.0.0
 * @Copyright (c) 2017宇信科技-版权所有
 */
public interface AdminSmNoticeService  {

    /**
     * @函数名称:insertInfo
     * @函数描述:新增公告、公告内容，ID为前台传入已生成的ID
     * @参数与返回说明:
     * @算法描述:
     */
    @Transactional(readOnly = false, rollbackFor = {Exception.class, RuntimeException.class})
    public AdminSmNoticeBean insertInfo(Object record);

    /**
     * @函数名称:updateInfo
     * @函数描述:修改公告、公告内容并返回ID
     * @参数与返回说明:
     * @算法描述:
     */
    @Transactional(readOnly = false, rollbackFor = {Exception.class, RuntimeException.class})
    public int updateInfo(Object record);


    /**
     * @函数名称:pubNotice
     * @函数描述:发布通知
     * @参数与返回说明:
     * @算法描述:
     */
    public int pubNotice(List<AdminSmNotice> list);


    /**
     * @函数名称:readNotice
     * @函数描述:阅读记录
     * @参数与返回说明:
     * @算法描述:
     */
    public int readNotice(List<AdminSmNoticeBean> list);




    /**
     * @函数名称:getNoticeByNoticeId
     * @函数描述:查询公告详情，包含富文本内容、接收对象
     * @参数与返回说明:
     * @算法描述:
     */
    public List<Map<String,String>> getNoticeByNoticeId(String id);


    /**
     * @函数名称:getFilePaths
     * @函数描述:获取附件pathS
     * @参数与返回说明:
     * @算法描述:
     */
    public String getFilePaths(QueryModel model);

    /**
     * @函数名称:getFileIds
     * @函数描述:获取附件IDS
     * @参数与返回说明:
     * @算法描述:
     */
    public String getFileIds(QueryModel model);


    /**
     * @函数名称:getRicheditFilePaths
     * @函数描述:获取富文本附件pathS
     * @参数与返回说明:
     * @算法描述:
     */
    public String getRicheditFilePaths(QueryModel model);
    
    /**
     * 单体化微服务改造
     * @param adminSmNoticeDto
     * @return
     */
    public int noticeInsert(AdminSmNoticeDTO adminSmNoticeDto);

}
